LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

RAGFlow

2025/3/5 AI

什么是RAGFlow

RAGFlow 是一种基于生成模型的技术,常用于智能聊天系统、推荐系统和自然语言处理任务。如果你是从零基础开始学习 RAGFlow(可能指的是 Retrieval-Augmented Generation Flow 或与其相关的模型/框架),以下是一些推荐的学习路径:

1. 理解基础概念

在学习 RAGFlow 之前,你需要了解一些相关的基本概念:

  • 自然语言处理(NLP):学习 NLP 的基本概念,比如分词、词向量(Word Embedding)、序列建模等。
  • 机器学习基础:了解机器学习的基本原理,包括监督学习、无监督学习、深度学习等。
  • 深度学习框架:熟悉一些常用的深度学习框架,如 TensorFlow 和 PyTorch,它们会在训练和实现 RAGFlow 模型时用到。

ragflow/README_zh.md at main · infiniflow/ragflow

先装个win版的Docker Desktop
打开 Anaconda Prompt 先放着不管

克隆 RAGFlow 的仓库 $ git clone https://github.com/infiniflow/ragflow.git

——————————— ★ ★ ———————————

Anaconda Prompt的命令窗口里
输入 cd E:\Python\ragflow\docker
接着 E:
然后就开始 装载 查看状态

关闭 docker-compose down
装载 docker compose up -d
查看状态 docker logs -f ragflow-server
——————————— ★ ★ ———————————

在你的 docker-compose.yml 配置中,Redis 的连接问题可能是因为 RAGFlow 配置文件中的 Redis 部分使用了密码,并且 Redis 运行在 localhost 上。如果 Redis 没有设置密码且端口号是 localhost,你可以尝试以下步骤进行调整:

  1. 修改 RAGFlow 的配置:在 ragflow 服务的配置中,确保 Redis 的连接信息正确。需要确保 Redis 连接时不使用密码并且连接到 localhost

  2. 更新 service_conf.yaml 配置:根据日志,RAGFlow 连接 Redis 时使用了密码。你需要检查 service_conf.yaml 中的 Redis 配置信息,将其修改为不使用密码,并指定 localhost

    示例修改:

      host: localhost
      port: 6379
      db: 1
      password: ""
    
  3. 检查 docker-compose.yml 配置:确保 ragflow 服务的 Redis 部分没有设置密码,且连接端口是 localhost。根据你的配置,默认情况下应该是没有密码的。

  4. 重新启动服务:在修改配置后,可以重新启动 Docker 服务以使修改生效。

    执行命令:

    docker-compose down
    docker-compose up -d
    

这样,你应该能够解决 Redis 连接的相关问题。如果还有其他问题,请继续提供日志或详细信息。

如果改了配置还是不行 ↓

检查与解决步骤

1. 确保 service_conf.yaml 已正确修改

你可以进入 RAGFlow 容器,查看 RAGFlow 读取的配置是否正确:

docker exec -it ragflow-server cat /ragflow/conf/service_conf.yaml

检查 redis 配置项是否是:

  redis:
  host: ragflow-redis  
  port: 6379
  db: 1
  password: ""  

如果不是,说明 docker-compose 可能仍然使用了旧的配置,你需要手动更新。

1. 确保 service_conf.yaml 绑定到了容器

检查 docker-compose.yml 是否正确挂载 service_conf.yaml
docker-compose.yml 里应该有:

yaml复制编辑volumes:
  - ./service_conf.yaml:/ragflow/conf/service_conf.yaml

如果没有这行,说明 service_conf.yaml 没有正确挂载,导致 RAGFlow 仍然使用容器内部的默认配置。

如果你修改了 docker-compose.yml,请执行:

docker-compose down
docker-compose up -d

然后 重新检查 容器内的 service_conf.yaml 是否正确:

docker exec -it ragflow-server cat /ragflow/conf/service_conf.yaml

你需要在请求中提供正确的凭证。根据之前你提供的账号密码 elastic:infini_rag_flow,你可以尝试以下命令:

docker exec -it 3a50f571ce26 curl -u elastic:infini_rag_flow http://localhost:9200

关于RAGFlow的顶级逆天Bug解决办法>

这个不是BUG,是使用问题,如果你是如下和我一样的报错,可以参考我的解决步骤
是使用问题,我这边完美解决了这个问题,解决步骤如下:
问题: docker logs -f 917c48df8473(infiniflow/ragflow:v0.16.0的容器日志)
peewee.OperationalError: (1045, “Access denied for user ‘root‘@’172.24.0.6’ (using password: YES)”)

问题原因,这个镜像的mysql密码一致是默认密码,只要配置没改全就会报错

解决办法:
  1. 停止并移除现有容器
    cd ./docker
    docker compose -f docker-compose.yml down
  2. 删除或备份数据卷
    备份命令:
    cp -r /home/data/docker/volumes/docker_esdata01 /backup/docker_esdata01_backup
    cp -r /home/data/docker/volumes/docker_minio_data /backup/docker_minio_data_backup
    cp -r /home/data/docker/volumes/docker_mysql_data /backup/docker_mysql_data_backup
    cp -r /home/data/docker/volumes/docker_redis_data /backup/docker_redis_data_backup
    删除命令:
    docker volume rm docker_esdata01
    docker volume rm docker_minio_data
    docker volume rm docker_mysql_data
    docker volume rm docker_redis_data
  3. 删除未使用的网络配置
    docker network prune
  4. 修改docker/.env 、 docker/service_conf.yaml.template和conf/service_conf.yaml 这三个文件
    中所有的密码,设置成自己的,务必这三处都保持一致(重要)
  5. 重新启动服务
    cd ./docker
    [root@localhost docker]# docker compose -f docker-compose.yml up -d
    WARN[0000] The “HF_ENDPOINT” variable is not set. Defaulting to a blank string.
    WARN[0000] The “MACOS” variable is not set. Defaulting to a blank string.
    [+] Running 10/10
    ✔ Network docker_ragflow Created 0.0s
    ✔ Volume “docker_esdata01” Created 0.0s
    ✔ Volume “docker_mysql_data” Created 0.0s
    ✔ Volume “docker_minio_data” Created 0.0s
    ✔ Volume “docker_redis_data” Created 0.0s
    ✔ Container ragflow-minio Started 0.4s
    ✔ Container ragflow-es-01 Started 0.4s
    ✔ Container ragflow-redis Started 0.4s
    ✔ Container ragflow-mysql Healthy 10.9s
    ✔ Container ragflow-server Started 11.1s

6.查看日志看看,没有如下报错了:

2025-02-26 10:51:53,554 INFO 20 TaskExecutor: RAGFlow version: v0.16.0 full
2025-02-26 10:51:53,554 INFO 20 Use Elasticsearch http://es01:9200 as the doc engine.
2025-02-26 10:51:53,563 INFO 20 GET http://es01:9200/ [status:200 duration:0.007s]
2025-02-26 10:51:53,566 INFO 20 HEAD http://es01:9200/ [status:200 duration:0.003s]
2025-02-26 10:51:53,566 INFO 20 Elasticsearch http://es01:9200 is healthy.
2025-02-26 10:51:53,572 WARNING 20 Load term.freq FAIL!
2025-02-26 10:51:53,577 WARNING 20 Realtime synonym is disabled, since no redis connection.
2025-02-26 10:51:53,583 WARNING 20 Load term.freq FAIL!
2025-02-26 10:51:53,588 WARNING 20 Realtime synonym is disabled, since no redis connection.
2025-02-26 10:51:53,588 INFO 20 MAX_CONTENT_LENGTH: 134217728
2025-02-26 10:51:53,588 INFO 20 SERVER_QUEUE_MAX_LEN: 1024
2025-02-26 10:51:53,588 INFO 20 SERVER_QUEUE_RETENTION: 3600
2025-02-26 10:51:53,588 INFO 20 MAX_FILE_COUNT_PER_USER: 0
2025-02-26 10:51:53,591 WARNING 20 RedisDB.queue_info rag_flow_svr_queue got exception: no such key
2025-02-26 10:51:53,592 INFO 20 task_consumer_0 reported heartbeat: {“name”: “task_consumer_0”, “now”: “2025-02-26T10:51:53.591+08:00”, “boot_at”: “2025-02-26T10:51:53.554+08:00”, “pending”: 0, “lag”: 0, “done”: 0, “failed”: 0, “current”: null}

7.注册登录注册测试:OK

👍2

shaw/dmeta-embedding-zh
Anaconda Prompt启动: ollama pull shaw/dmeta-embedding-zh

把每个段落做成向量化的编码